package alpha.com.google.code.mechanic.janitor.model;

/**
 * The Interface IContext is to manage data related to Contexts. 
 * 
 * Last_edited: Apr 11th, 2014
 * 
 * @author jingjiejiang
 * @since Apr 11, 2014
 */
public interface IContext {
  
  /**
   * Return a name of a context. The name of the context should be unique from
   * the others.
   *
   * @return
   */
  public String getName();
  
  /**
   * Return the location of the configuration files that belong to a context.
   * 
   * @return
   */
  public String getFileLocation();
  
  /**
   * Set the name of a context.
   * 
   * @param name
   */
  public void setName(String name);
  
  /**
   * Set the files location of a context.
   * 
   * @param location
   */
  public void setFileLocation(String location);
  
  /**
   * Return the status whether the context is selected to use in Eclipse.
   *
   * @return
   */
  public boolean isSelected();
  
  /**
   * Set the context as a selected one.
   * @param selected
   */
  public void setSelected(boolean selected);

}
